<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>自定义遍历数据</title>
</head>
<body>
    <script>
        const team = {
            name: '终极一班',
            members: [
                'xiaoming',
                'xiaoning',
                'xiaotian',
                'knight'
            ],
            //声明一个属性
            index: 0,
            
            //为对象添加 Symbol.iterator 方法
            [Symbol.iterator]: function(){
                return {
                    next: () => {
                        //判断              4
                        if(this.index < this.members.length){
                             return {
                                 value: this.members[this.index++],
                                 done: false,
                             }
                        }else{
                            return {
                                value: undefined,
                                done: true
                            }
                        }
                        
                    }
                };
            }
        }
        //对象外部添加
        // team[Symbol.iterator] = function(){}

        // for...of  遍历 team 对象  并且每次的返回值为 team.members 中的成员
        // 自定义遍历数据 更符合面向对象的编程思想
        for(let v of team){
            console.log(v);
        }


    </script>
</body>

</html>